МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ЗВІТ ДО ЛАБОРАТОРНОЇ РОБОТИ № 3
РОБОТА З МАСИВАМИ. ВИКОРИСТАННЯ ФУНКЦІЙ
Мета роботи – вивчити синтаксис опису і використання у програмах змінних типу масивів, навчитися використовувати масиви для оброблення матриць, вивчити основні алгоритми сортування масивів; навчитися описувати та застосувати у програмах функції для виконання логічно закінчених алгоритмів.
ОСНОВНІ ТЕОРЕТИЧНІ ВІДОМОСТІ
1.1. Функції.
Оголошення функції (прототип)
Синтаксис:
[<специфікація класу пам’яті>] [<специфікація типу>] <оголошувач>
( [<список аргументів>] );
Оголошення функції специфікує ім’я функції, тип значення що повертається і, можливо, типи її аргументів та їх числові значення. Ці атрибути функції необхідні для перевірки компілятором мови Сі коректності звертання до неї до того, як вона визначена.
Якщо <оголошувач> функції представляє собою ідентифікатор (ім’я функції), то оголошується функція, тип значення якої, що повертається, заданий специфікацією типу. Функція не може повертати масив чи функцію, однак може повертати покажчик на ці об’єкти.
Якщо специфікація типу в оголошенні функції пропущена, то передбачається тип int. На зовнішньому рівні може бути також пропущена специфікація класу пам’яті (див. класи пам’яті), а на внутрішньому рівні хоча б одна із специфікацій – класу пам’яті чи типу – повинна бути присутньою.
Деякі приклади оголошень функцій:
add(int, int); /* приклад 1 */
double calc( ); /* приклад 2*/
void draw(void); /* приклад 3 */
void bul(int a[n][n]); /* приклад 4 */
В першому прикладі оголошується функція з іменем add, яка приймає два аргументи типу int і повертає значення типу int.
В другому прикладі оголошується функція з іменем calc, яка повертає значення типу double. Список типів аргументів пустий.
В третьому прикладі оголошується функція draw з типом що повертає значення void (нічого не повертається). Список типів аргументів також містить ключове слово void, що вказує на відсутність аргументів функції.
В четвертому прикладі оголошується функція bul з типом що повертає значення void. Аргумент функції – двомірний масив (n – розмірність масиву) елементів цілого типу.
Оголошення функції
Оголошення функції визначає її ім’я, тип значення що повертається, клас пам’яті і може також задавати тип деяких чи усіх аргументів функції.
Крім явного оголошення, функція може бути оголошена неявно, по контексту її виклику. Неявне оголошення має місце в тому випадку, коли функція викликається без попереднього оголошення чи визначення. В цьому випадку компілятор мови Сі вважає, що функція, яка викликається, має тип значення що повертається int і клас пам’яті extern. Визначення функції, якщо воно є далі в тому ж самому файлі, може перевизначити тип значення що повертається і клас пам’яті.
Тип значення функції що повертається, вказаний у попередньому оголошенні, повинен відповідати типу значення що повертається у визначенні функції.
Наприклад:
main( )
{
int a = 0, b = 1;
float x = 2.0, y = 3.0;
double realadd(double, double);
a = intadd(a, b);
x = realadd(x, y);
}
intadd(a, b)
int a, b;
{
return (a + b); /* повертає значення типу int */
}
double realadd(x, y)
double x, y;
{
return (x + y); /* повертає значення типу double */
}
В прикладі функція intadd оголошена неявно з типом значення що повертається int, оскільки вона викликана до свого визначення. Компілятор не перевірятиме типи аргументів при виклику даної функції, тому що список типів аргументів для неї не заданий.
Функція realadd повертає значення типу double. В функції main є попереднє оголошення функції realadd. Тип значення що повертається (double), заданий у визначенні, відповідає типу значенню що повертається, заданому в попередньому оголошені. В попередньому оголошені також визначені типи двох параметрів функції realadd. Типи фактичних аргументів відповідають типам, що задані в попередньому оголошені, і також відповідають типам фор...